// pages/search/search.js
const app = getApp()

Page({
  data: {
    keyword: '',
    searchResults: [],
    searchHistory: [],
    hotKeywords: ['玫瑰花', '康乃馨', '百合花', '向日葵', '郁金香', '满天星'],
    loading: false,
    selectionStart: -1,
    selectionEnd: -1
  },

  onLoad(options) {
    // 获取搜索历史
    this.loadSearchHistory()
    
    // 如果有传入关键词，直接搜索
    if (options.keyword) {
      this.setData({
        keyword: options.keyword
      })
      this.performSearch(options.keyword)
    }
  },

  // 输入事件
  onInput(e) {
    this.setData({
      keyword: e.detail.value
    })
  },

  // 搜索确认
  onSearch(e) {
    const keyword = e.detail.value.trim()
    if (keyword) {
      this.performSearch(keyword)
    }
  },

  // 搜索按钮点击
  onSearchTap() {
    const keyword = this.data.keyword.trim()
    if (keyword) {
      this.performSearch(keyword)
    } else {
      wx.showToast({
        title: '请输入搜索关键词',
        icon: 'none'
      })
    }
  },

  // 输入框焦点事件
  onFocus(e) {
    console.log('输入框获得焦点')
  },

  // 输入框失焦事件
  onBlur(e) {
    console.log('输入框失去焦点')
  },

  // 选择文本变化
  onSelectionChange(e) {
    this.setData({
      selectionStart: e.detail.selectionStart,
      selectionEnd: e.detail.selectionEnd
    })
  },

  // 执行搜索
  async performSearch(keyword) {
    if (!keyword.trim()) return

    this.setData({ loading: true })

    try {
      const response = await app.request({
        url: '/flowers/',
        data: {
          search: keyword,
          limit: 20
        }
      })

      // app.request直接返回后端数据，不需要检查response.success
      this.setData({
        searchResults: response.results || [],
        keyword: keyword
      })
      
      // 保存搜索历史
      this.saveSearchHistory(keyword)
      
    } catch (error) {
      console.error('搜索失败:', error)
      app.showToast('搜索失败，请重试', 'none')
    } finally {
      this.setData({ loading: false })
    }
  },

  // 取消搜索
  onCancel() {
    wx.navigateBack()
  },

  // 历史记录点击
  onHistoryTap(e) {
    const keyword = e.currentTarget.dataset.keyword
    this.setData({ keyword })
    this.performSearch(keyword)
  },

  // 热门搜索点击
  onHotTap(e) {
    const keyword = e.currentTarget.dataset.keyword
    this.setData({ keyword })
    this.performSearch(keyword)
  },

  // 商品点击
  onProductTap(e) {
    const productId = e.currentTarget.dataset.id
    wx.navigateTo({
      url: `/pages/detail/detail?id=${productId}`
    })
  },

  // 清空搜索历史
  onClearHistory() {
    wx.showModal({
      title: '提示',
      content: '确定要清空搜索历史吗？',
      success: (res) => {
        if (res.confirm) {
          wx.removeStorageSync('searchHistory')
          this.setData({
            searchHistory: []
          })
        }
      }
    })
  },

  // 加载搜索历史
  loadSearchHistory() {
    try {
      const history = wx.getStorageSync('searchHistory') || []
      this.setData({
        searchHistory: history.slice(0, 10) // 最多显示10条
      })
    } catch (error) {
      console.error('加载搜索历史失败:', error)
    }
  },

  // 保存搜索历史
  saveSearchHistory(keyword) {
    try {
      let history = wx.getStorageSync('searchHistory') || []
      
      // 移除重复项
      history = history.filter(item => item !== keyword)
      
      // 添加到开头
      history.unshift(keyword)
      
      // 最多保存20条
      history = history.slice(0, 20)
      
      wx.setStorageSync('searchHistory', history)
      this.setData({
        searchHistory: history.slice(0, 10)
      })
    } catch (error) {
      console.error('保存搜索历史失败:', error)
    }
  }
})